Makra

Top  Prev  Next

Co je to makro

Makro je posloupnost příkazů editoru. Tuto posloupnost lze zaznamenat a následně opakovaně přehrávat. Tím lze zjednodušit opakované operace (příklady použití jsou uvedeny níže)

 

Jak to pracuje

Stisknutím tlačítka záznam (CTRL+F5) se začínají všechny operace s textem v editoru zaznamenávat. Při zahájení záznamu se kurzor změní na šipku s kamerou. Zpět se změní při ukončení nebo přerušení nahrávání.

Po ukončení záznamu (CTRL+F5) se záznam ukončí. Objeví se dialog, ve kterém makro pojmenujete (není nutné). Makro je okamžitě k dispozici pod klávesovou zkratkou F5.

 

Makro manažer

K údržbě maker slouží tzv. Makro Manažer (Shift+Ctrl+F5). Zde můžete jednotlivá makra mazat, editovat, spouštět opakovaně, přiřadit jim klávesovou zkratku...

 

Omezení

Do makra se nezaznamenávají akce, provedené pomocí myši. Označování bloku dělejte pomocí SHIFT+šipky

Makro nepracuje s příkazy pro hledání a nahrazení textu

Délka makra je omezena pouze dostupnou pamětí počítače. Vzhledem k tomu, že jeden záznam tvoří pouze kód příkazu a znak je velikost téměř neomezená. Obsah makra lze od verze 3.3.3 editovat a zpět kompilovat. Přehled dostupných příkazů najdete zde.

 

Editace makra

Pokud si zvolíte v Makro manažeru editaci makra, otevře se vám nový soubor s příponou .PME. K dispozici je zvýrazňovač PSPad Makro i šablona s příkazy (Ctrl+Space).

Příkaz pro vložení znaku je nastaven na Ctrl+Enter

 

Doporučuji následující nastavení zvýrazňovače pro editaci maker:

 

Komentáře     černá, font normální (vkládané znaky v lomených závorkách)

Identifikátory červená, font normální (chybný příkaz bude červeně)

Klíčová slova modrá, font normální

 


Příklady použití

 

Příklad1:

Měl jsem text ve tvaru:

21: if KeyComp('del') then Result := tkKey else

21: if KeyComp('start') then Result := tkKey else

90: if KeyComp('findstr') then Result := tkKey else

Potřeboval jsem smazat vždy pro určitý počet řádků první tři znaky a vložit jednu mezeru. V tomto případě nelze použít hledání s nahrazením, protože text není stejný. Samozřejmě, že by to šlo přes sloupcový blok odmazat, potom si jako sloupcový blok označit první sloupec mezer a přes hledat a nahradit jednu mezeru nahradit dvěmi. Ale je to spousta práce s myší, přepínání bloků, protože upravený text potřebuji následně umístit do jiného souboru.To je přesně ta správná práce pro MAKRO. Postup záznamu:

Nyní stačí opakovaně mačkat F5 a řádky jsou upraveny

 

Příklad2:

Potřebuji vytvořit následující řádky

fIdentFuncTable[72] := Func72;

fIdentFuncTable[73] := Func73;

fIdentFuncTable[74] := Func74;

Mohl bych si je kopírovat a přepisovat čísla. Můžu ale využít MAKRO:

Mačkám F5 a před očima se mi objevují požadované řádky. Řádků bylo moc a takhle to byla otázka chvilky bez zbytečného najíždění a přepisování čísel na dvou místech v kopírovaných řádcích